home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / DNet / DGoNetDoc.h < prev    next >
Encoding:
Text File  |  1996-07-05  |  5.1 KB  |  182 lines  |  [TEXT/R*ch]

  1. // DGopherDoc.h
  2. // d.g.gilbert
  3.  
  4.  
  5. #ifndef _DGONETDOC_
  6. #define _DGONETDOC_
  7.  
  8.  
  9. #include <DWindow.h>
  10. #include <DRichViewNu.h>
  11. #include <DPanel.h>
  12. #include <DTableView.h>
  13. #include <Dvibrant.h>
  14. #include <DGoList.h>
  15. #include <DUtil.h>
  16.  
  17. class DGopher;
  18. class DFile;
  19. class DPrompt;
  20. class    DMenu;
  21. class DCluster;
  22. class DButton;
  23. class DGopherMap;
  24. class DPopupList;
  25. class DRichStyle;
  26. class DRichView;
  27. class DRichHandler;
  28. class DGopherListDoc;
  29. class DGoLinkedTextDoc;
  30.  
  31. class    DGopherTextStore : public DTaskMaster
  32. {
  33. public:
  34.     DGopher                * fParentGo, * fStufGo;
  35.     short                        fFirststuff;
  36.     DRichView         * fRichView;
  37.     short                        fDocFormat;
  38.     DTempFile            * fDocFile, * fFetchFile;
  39.     DRichHandler    * fRichHandler;
  40.     DRichStyle        * fInlineStyle;
  41.      DGopherList     *    fGolist;
  42.     Boolean                    fIsFromFile, fIsLinkDoc;
  43.     short                        fMapLink;
  44.     DWindow             * fWindow;
  45.     
  46.     DGopherTextStore( DGopher* itsGopher, DWindow* itsWindow, Boolean havelinks = true);
  47.     virtual ~DGopherTextStore();
  48.     virtual    Boolean suicide(void);  // prefered to delete 
  49.     virtual    Boolean suicide(short ownercount);
  50.     
  51.     virtual Boolean IsMyTask(DTask* theTask);
  52.     virtual void       ProcessTask(DTask* theTask);
  53.     virtual char*   ProcessTask1( char* databuf, ulong& datasize);
  54.     virtual void       Close();
  55.     virtual Boolean OpenStore();
  56.     virtual void         SetGolist(DGopherList *theList);
  57.     virtual void    WriteDoc( DFile* toFile, char* readkind, char* writekind);
  58.     virtual void    StartInlineFetch( DGopher* stufGo, DRichStyle* stufStyle);
  59.     virtual const char* GetTitle();
  60. };
  61.  
  62.  
  63.  
  64. class    DGopherTextDoc : public DRichTextDoc, public DSaveHandler
  65. {
  66. public:
  67.     enum gtTasks { kGoTextdoc = 230, cPushpin, cParentDrop, cShiftFore, cShiftBack };
  68.     DGopherTextStore *    fStore;
  69.     DPrompt            *    fStatus;
  70.     Boolean             fInUse, fPinned;
  71.     DIconButton * fStickpin, * fShiftFore, * fShiftBack; 
  72.     Nlm_PoinT            fTextViewLoc;
  73.     DList                *    fTextStoreList;
  74.     short                    fListAt;
  75.     
  76.     
  77.     DGopherTextDoc(long id, DGopher* itsGopher, Boolean havelinks = true);
  78.     virtual ~DGopherTextDoc();
  79.     
  80.     virtual Boolean PushNewDoc( DGopher* itsGopher, DGopherList* itsList, Boolean havelinks = true);
  81.     virtual Boolean PopDoc( short numitems = 1);
  82.     virtual Boolean IsMyAction(DTaskMaster* action); 
  83.     virtual Boolean IsMyTask(DTask* theTask);
  84.     virtual void ProcessTask(DTask* theTask);
  85.     virtual void Open();
  86.     virtual void Close();
  87.     virtual void Activate();
  88.     virtual void Deactivate();
  89.     virtual void ShowMessage(const char* msg);
  90.     virtual void Save(DFile* aFile);
  91.     virtual const char* GetFileToSave(DFile*& aFile);
  92.     virtual void PinWindow(Boolean turnon);
  93.     virtual void AddToList( DGopherTextStore* theStore);
  94. };
  95.  
  96.  
  97. class    DGoLinkedTextDoc : public DGopherTextDoc
  98. {
  99. public:
  100.     enum gltTasks { kGoLitextdoc = 245, cMenuPopup };
  101.     DPopupList         * fMenuList;
  102.     DGopherListDoc * fGopherDoc; // ?? remove
  103.     DList                    *    fInlineParts;
  104.     static Boolean gAutoloadInlines;
  105.     static short TestFormat( char* databuf, ulong datasize, char*& datastart);
  106.  
  107.     DGoLinkedTextDoc(long id, DGopher* itsGopher, DGopherList* itsList);
  108.     virtual ~DGoLinkedTextDoc();
  109.  
  110.     virtual Boolean PushNewDoc( DGopher* itsGopher, DGopherList* itsList, Boolean havelinks = true); 
  111.     virtual Boolean PushNewLocalDoc( DFile* docFile, DFile* goFile); 
  112.     virtual Boolean IsMyAction(DTaskMaster* action); 
  113.     virtual void ProcessTask(DTask* theTask);
  114.     virtual Boolean ReadFrom(DFile* docFile, DFile* goFile);
  115.     virtual void Open(DFile* docFile, DFile* goFile);
  116.     virtual void Open();
  117.  
  118.     virtual void AddGolinksToDoc();
  119.     virtual void MarkURLs();
  120.     virtual void InsertLink( short golistItem, DGopher* theGo, short atparag, 
  121.                                     short atchar, short atlen);
  122.     virtual void InsertLink( DGopher* theGo, short atparag, short atchar, 
  123.                                     short atlen);
  124.     virtual void InsertLink( short golistItem, DGopher* theGo, Nlm_RecT arect, 
  125.                                     short atparag, short atchar);
  126.     virtual void InsertLink( DGopher* theGo, Nlm_RecT arect, short atparag, 
  127.                                     short atchar);
  128.  
  129.     virtual void LinkToSelection( DGopher* aGopher);
  130.     virtual void ExtractGopherDoc();
  131.     virtual void SetupInlinePart( DRichStyle* st);
  132.     virtual void SetupInlineParts();
  133.     virtual Boolean ReadInlinePart();
  134.  
  135.     virtual void OpenGopherLink( short gopherItem, Nlm_PoinT* mappt = NULL);
  136.     virtual void OpenGopherLink( DGopher* ag, Nlm_PoinT* mappt = NULL);
  137.     virtual void Save(DFile* aFile);
  138. };
  139.  
  140.  
  141. class    DGopherInfoDoc : public DGopherTextDoc
  142. {
  143. public:    
  144.     enum giTasks { kGoInfodoc = 235 };
  145.     short fSavedType;
  146.     DGopherInfoDoc(long id, DGopher* itsGopher) : DGopherTextDoc(id, itsGopher) {}
  147.     virtual void ProcessTask(DTask* theTask);
  148.     virtual void Open();
  149. };
  150.  
  151.  
  152. class    DGopherFileDoc : public DWindow
  153. {
  154. public:
  155.     enum gfTasks { kGoFiledoc = 240, kLaunchBut };
  156.     DGopher    * fParentGo;
  157.     short        fFirststuff;
  158.     DFile        * fFile;
  159.     DPrompt * fBytesAvail;
  160.     DPrompt * fBytesGot;
  161.     DPrompt * fTimeSpent;
  162.     DPrompt * fBytesPerSec;
  163.     DButton * fLaunch;
  164.     DGopherMap * fMapper;
  165.     
  166.     DGopherFileDoc(long id, DGopher* itsGopher);
  167.     virtual ~DGopherFileDoc();
  168.     virtual    Boolean suicide(void);  // prefered to delete 
  169.     virtual    Boolean suicide(short ownercount);
  170.     
  171.     virtual Boolean IsMyTask(DTask* theTask);
  172.     virtual void ProcessTask(DTask* theTask);
  173.     virtual Boolean IsMyAction(DTaskMaster* action); 
  174.     virtual void Open();
  175. };
  176.  
  177.  
  178. extern  DList*    gTextStoreList;
  179. extern  DGopherTextDoc* gGopherTextDoc;
  180.  
  181. #endif
  182.